Skip to content

btc(donation): clarify combined P2SH is intentional unified v36 target (FLAG6) - #128

Merged
frstrtr merged 1 commit into
masterfrom
btc/flag6-combined-p2sh-comment
Jun 17, 2026
Merged

btc(donation): clarify combined P2SH is intentional unified v36 target (FLAG6)#128
frstrtr merged 1 commit into
masterfrom
btc/flag6-combined-p2sh-comment

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Comment-only. No gentx behavior change → CI trivially green.

FLAG6 decision (operator 2026-06-17, option-b)

The v36 donation target is a deliberate unified cross-coin combined P2SH (1-of-2 multisig: forrestv + c2pool dev key) for ALL coins — not a bug, not reverted to per-coin P2PK. PR #127 (option-a P2PK revert) was closed.

Change

Rewrites the stale/misleading comment above COMBINED_DONATION_SCRIPT in src/impl/btc/config_pool.hpp. The old comment claimed the combined P2SH was "LTC-only ... inert byte data" for BTC and that BTC v36 stays on V35 P2PK. That is false: the live path share_check.hpp:2940 get_donation_script(36) -> COMBINED_DONATION_SCRIPT means BTC v36 coinbases intentionally pay the combined P2SH. New comment states this plainly and notes per-coin baseline conformance still governs every other consensus aspect; the donation target is the deliberate exception.

Uniformity verification (step 3)

Confirmed the unified P2SH path is applied uniformly across all coins v36 gentx, not BTC-only:

coin get_donation_script(>=36) hash160
btc COMBINED_DONATION_SCRIPT 8c627262..8e85
ltc COMBINED_DONATION_SCRIPT 8c627262..8e85
bch COMBINED_DONATION_SCRIPT 8c627262..8e85
dgb COMBINED_DONATION_SCRIPT 8c627262..8e85
dash (no donation layer) N/A

All route through PoolConfig::get_donation_script(share_version) via each coin's donation_consensus.hpp. The 20-byte redeem hash160 is byte-identical across btc/ltc/bch/dgb. No coin diverges from the combined P2SH.

Live path — unchanged (left as-is per decision)

src/impl/btc/share_check.hpp:2940: write_txout(donation_amount, PoolConfig::get_donation_script(int64_t(36))).

…t (FLAG6)

The comment above COMBINED_DONATION_SCRIPT wrongly claimed the combined
1-of-2 P2SH was LTC-only inert byte data and that BTC v36 stays on V35
P2PK. That is stale: BTC v36 coinbases intentionally pay the combined
P2SH via get_donation_script(>=36), as do ltc/bch/dgb (identical hash160
8c627262..8e85). Rewrite the comment to state the combined P2SH is the
deliberate unified cross-coin v36 donation target; per-coin baseline
conformance still governs every other consensus aspect.

Comment-only. No gentx behavior change.
@frstrtr
frstrtr merged commit bc4d609 into master Jun 17, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant